import requests

from api.open_account_api import OpenAccountApi
from api.reg_log_api import RegLoginApi
from common.util import common_assert, html_util


class TestOpenAccount(object):

    def setup(self):
        #创建session对象
        self.ses=requests.session()
        #实例化封装接口请求的类
        self.reg_login_api=RegLoginApi(self.ses)
        #创建实例化开户模块接口请求的类
        self.open_accout_api=OpenAccountApi(self.ses)

    # 实名认证测试用例
    def test01_realname(self):
        #实现登录接口
        self.reg_login_api.user_login("18743264322",'qqq123')
        #实现实名认证接口
        resp=self.open_accout_api.realname('张三','450102199003078798')
        #断言
        common_assert(resp,200,'成功')
        resp_dict=resp.json()
        assert '450****798'==resp_dict.get('data').get('card_id')
        assert '张**'==resp_dict.get('data').get('realname')
    # 开户测试用例
    def test02_open_account(self):
        #实现登录接口
        self.reg_login_api.user_login("18743264322",'qqq123')
        #实现开户接口
        resp=self.open_accout_api.open_account()
        #断言

        common_assert(resp,200, "form")


    # 第三方开户测试用例
    def test03_third_open_account(self):

        #实现登录接口
        self.reg_login_api.user_login("18743264322", 'qqq123')
        #实现开户接口
        resp=self.open_accout_api.open_account()
        #调用封装读取的第三方接口请求数据方法
        data_list=html_util(resp)
        #获取第三方开户接口请求url
        url=data_list[0]
        #获取第三方开户接口请求体数据
        form_dict=data_list[1]
        #实现第三方开户接口
        resp_open_accout=self.open_accout_api.third_open_account(url,form_dict)

        #断言
        assert 200==resp_open_accout.status_code
        assert 'OK' in resp_open_accout.text
